package com.kingyun.gpsinspection.purificationservice.dao.mapper.jsm;


import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.EmployeeVo;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.Menu;

import java.util.List;
import java.util.Map;

public interface MenuMapper {

    /**
     * @param selMap
     * @return
     */
    Menu selectMenuByUrl(Map selMap);

    /**
     * @param selMap
     */
    Menu selectFirstMenuByUrl(Map selMap);

    /**
     * 根据ID物理删除
     *
     * @param menuId
     * @return
     */
    int deleteByPrimaryKey(String menuId);

    /**
     * 添加
     *
     * @param record
     * @return
     */
    int insert(Menu record);

    /**
     * 非空添加
     *
     * @param record
     * @return
     */
    int insertSelective(Menu record);

    /**
     * 根据ID查询
     *
     * @param menuId
     * @return
     */
    Menu selectByPrimaryKey(String menuId);

    /**
     * 根据parentMenuId查询数据
     *
     * @param isAdmin
     * @return
     */
    List selectByIsAdmin(Map isAdmin);

    /**
     * 根据parentMenuId查询树形数据
     *
     * @param afterMenu
     * @return
     */
    List<Menu> selectAfterMenu(Map afterMenu);

    List<Menu> getMenus(Map map);

    /**
     * 查询所有菜单信息
     *
     * @return
     */
    List<Menu> selectAllMenu();

    /**
     * 非空修改
     *
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(Menu record);

    /**
     * 修改
     *
     * @param record
     * @return
     */
    int updateByPrimaryKey(Menu record);

    /**
     * 根据条件查询菜单问题 ；
     *
     * @param lisMap
     * @return
     */
    List<Menu> selectMenuList(Map lisMap);

    /**
     * 根据条件查询ID集合
     *
     * @param list
     * @return
     */
    List<String> selectByListId(List<Menu> list);

    /**
     * @param list
     * @Author
     * @Description 批量添加
     * @Date 2017/2/8 17:17
     */
    int insertList(List<Menu> list);

    /**
     * @param list
     * @Author 卢曼成
     * @Description 批量修改
     * @Date 2017/2/8 17:17
     */
    int updateList(List<Menu> list);

    /**
     * @param list
     * @Author 卢曼成
     * @Description 批量逻辑删除
     * @Date 2017/2/8 17:18
     */
    int deleteList(List<Menu> list);

    /**
     * @param employeeVo
     * @return
     */
    List<Menu> getAllMenuPermission(EmployeeVo employeeVo);

    /**
     * @param keyword 树形查询，模糊搜索，进行模糊查找
     * @return
     */
    List<Menu> selectByKeyWord(Menu keyword);

    List<Menu> queryMenuChild(String menuId);
}